# -*- coding = utf-8 -*-
# @Time : 2024/3/24 15:02
# @Author: tangxl
# @File: 自动填表单.py
# @Software: PyCharm
import random  # 随机函数包
import pyautogui  # GUI 自动化工具
import keyboard  # 控制键盘
import pyperclip

from utils import OptionUtils


# 随机生成姓名
def generate_name(gender):
    # 随机生成姓氏
    xing = random.choice(['张', '王', '李', '赵', '刘', '陈', '杨', '黄'])
    # 随机生成名字
    if gender == '男':
        ming = random.choice([
            '明', '强', '军', '建', '立', '新', '时', '代', '特', '色', '社', '会', '主', '义', '事', '业', '推', '进',
            '高', '质', '量', '发', '展', '创', '新', '驱', '动', '战', '略',
            '实', '施', '乡', '村', '振', '兴', '战', '略', '加', '强', '生', '态', '文', '明', '建', '设', '推', '动',
            '形', '成', '全', '面', '开', '放', '新', '格', '局', '构', '建', '人', '类',
            '命', '运', '共', '同', '体', '促', '进', '世', '界', '和', '平', '与', '发', '展', '弘', '扬', '伟', '大',
            '建', '党', '精', '神', '自', '我', '革', '命', '永', '远', '在', '路', '上',
            '坚', '持', '全', '面', '从', '严', '治', '党', '深', '化', '国', '家', '监', '察', '体', '制', '改', '革',
            '推', '进', '法', '治', '中', '国', '建', '设', '维', '护', '国', '家', '安',
            '全', '和', '社', '会', '稳', '定', '提', '升', '国', '防', '和', '军', '队', '现', '代', '化', '水', '平',
            '推', '动', '构', '建', '新', '型', '国', '际', '关', '系', '推', '动', '共',
            '建', '一', '带', '一', '路', '高', '质', '量', '发', '展', '共', '同', '体', '推', '动', '全', '球', '治',
            '理', '体', '系', '改', '革', '和', '建', '设', '积', '极', '参', '与', '全',
            '球', '气', '候', '治', '理', '维', '护', '多', '边', '贸', '易', '体', '制', '推', '动', '经', '济', '全',
            '球', '化', '朝', '着', '更', '加', '开', '放', '包', '容', '普', '惠', '平',
            '衡', '共', '赢', '的', '方', '向', '发', '展', '坚', '定', '维', '护', '国', '家', '主', '权', '安', '全',
            '发', '展', '利', '益', '推', '动', '建', '设', '新', '型', '国', '际', '经',
            '济', '关', '系', '以', '中', '国', '式', '现', '代', '化', '全', '面', '推', '进', '中', '华', '民', '族',
            '伟', '大', '复', '兴', '坚', '持', '和', '发', '展', '中', '国', '特', '色',
            '社', '会', '主', '义', '为', '全', '面', '建', '设', '社', '会', '主', '义', '现', '代', '化', '国', '家',
            '全', '面', '推', '进', '中', '华', '民', '族', '伟', '大', '复', '兴', '而',
            '团', '结', '奋', '斗', '为', '全', '面', '建', '设', '社', '会', '明', '强', '军', '建', '小三', '大',
            '强', '小三', '小四', '小五', '小六', '小七', '小八', '小九', '小十', '小十一', '小十二',
            '小十三', '小十四', '小十五', '小十六', '小十七', '小十八', '小十九', '小二十', '小二十一', '小二十二',
            '小二十三',
            '岳飞', "流", "三", "格局", "屁", "大"])
    else:
        ming = random.choice(['丽', '红', '云', '小'])
    return xing + ming


# 随机生成手机号码
def generate_random_phone_number():
    # 定义可能的手机号码前缀范围
    prefixes = ['13' + str(i) for i in range(0, 10)] + ['15' + str(i) for i in range(0, 10)] + ['18' + str(i) for i in
                                                                                                range(0, 10)]
    prefix = random.choice(prefixes)  # 随机选择一个前缀

    # 生成中间四位地区码，假设为0000-9999之间的随机数字
    middle_four_digits = ''.join(random.choices('0123456789', k=4))

    # 生成最后四位用户号，也是0000-9999之间的随机数字
    last_four_digits = ''.join(random.choices('0123456789', k=4))

    # 组合成一个完整的手机号
    phone_number = prefix + middle_four_digits + last_four_digits

    return phone_number


if __name__ == '__main__':
    num = 0
    while num <= 3000:
        # 获取鼠标坐标王建  00656001940
        x, y = OptionUtils.getMouseCoordinates()
        # 鼠标操作:输入姓名
        pyautogui.moveTo(483, 385, duration=0.1)
        OptionUtils.clickTheMouse(483, 385)
        # 随机生成姓名
        name = generate_name('男')
        # 复制粘贴姓名
        pyperclip.copy(name)
        pyautogui.hotkey('ctrl', 'v')
        pyautogui.moveTo(484, 546, duration=0.1)
        OptionUtils.clickTheMouse(484, 546)
        # 随机生成手机号
        phone = generate_random_phone_number()
        pyperclip.copy(phone)
        pyautogui.hotkey('ctrl', 'v')
        # 点击提交
        pyautogui.moveTo(699, 650, duration=0.1)
        OptionUtils.clickTheMouse(699, 650)
        # 确定提交
        pyautogui.moveTo(854, 802, duration=0.1)
        OptionUtils.clickTheMouse(854, 802)
        pyautogui.sleep(0.6)
        # 点击再来一份
        pyautogui.moveTo(648, 950, duration=0.1)
        OptionUtils.clickTheMouse(648, 950)
        pyautogui.sleep(0.3)
        num = num + 1
        print('已操作' ,num , '次')

        # 按下esc键退出
        if keyboard.is_pressed("esc"):
            pyautogui.alert('程序已退出')
            break
    print("退出循环")
